#include <stdio.h>
/*
概念区分：
1.指针函数： 本质是一个函数，只不过返回的类型是一个指针。
int * func(int a, int b)
2.函数指针： 本质是一个指针
*/

int add(int a, int b){
    return a + b;
}
int sub(int a, int b) {
    return a -b;
}
int main () {
    int ret = 0;

    ret = add(10, 20);
    printf("a + b = %d \n", ret);

    printf(" add = %p\n",add);


    printf("======================\n");

    int (*funp) (int, int) = add;
    printf("funp = %p\n",funp); // add函数的地址和funp指向的地址一样
    ret = funp(10, 20);
    printf("a + b = %d\n",ret);
    funp = sub;
    ret = funp(20, 10);
    printf(" a - b = %d \n ", ret);
    return 0;
}